JDK: 1.8
SpringBoot: 1.5.10.RELEASE
@ConfigurationProperties VS @Value
| 特性 | @ConfigurationProperties | @Value |
|---|---|---|
| 松散绑定 | 支持 | 不支持 |
| 批量绑定 | 支持 | 不支持 |
| SpEL表达式 | 不支持 | 支持 |
| 复杂类型封装 | 支持 | 不支持 |
| JSR303校验 | 支持 | 不支持 |
松散绑定
若属性名称是:lastName,那么 YAML 文件中即可以是 lastName,也可以是 last-name,也可以是 last_name,还可以是 LAST_NAME
SpEL表达式
1 | ("${person.name}") |
###@ConfigurationProperties 其他特性
Bean属性赋值
和 @Bean 注解一起,可以为 Bean 进行属性赋值
读取指定文件配置
和 @PropertySource 注解一起,可以读取指定文件
支持 JSR303校验
支持读取外部配置文件
和 @ImportResource 注解一起,可以读取外部配置文件
综合来说,推荐使用 @ConfigurationProperties 注解